package com.solution.wx.share.dao.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.solution.common.dao.impl.BaseDaoImpl;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;
import com.solution.wx.share.dao.ShareCommentDao;
import com.solution.wx.share.entity.ShareCommentEntity;

/**
 * 用户评论DAO实现
 * @author xkl
 * @date 2018年5月8日 下午4:06:55
 */
@Repository
public class ShareCommentDaoImpl extends BaseDaoImpl<ShareCommentEntity> implements ShareCommentDao {

	/**
	 * 保存客户分享评论信息
	 * @param shareCommentEntity
	 * @return
	 * @author xu_cc
	 * @date 2018-05-07 15:23:32
	 */
	@Override
	public long saveShareComment(ShareCommentEntity shareCommentEntity) {
		return super.insert(shareCommentEntity);
	}

	/**
	 * 批量插入评论图片
	 * @param list
	 * @return
	 * @author xu_cc
	 * @date 2018-05-07 15:23:32
	 */
	public int saveCommentImageList(List<com.solution.wx.share.entity.ShareCommentImageEntity> list) {
		return getSessionTemplate().insert(getStatement("insertCommentImage"), list);
	}
	
	/**
	 * 客户端评论展示
	 * 
	 * @param pageParam
	 *            分页对象
	 * @param shareComment
	 *            分页参数
	 * @return PageBean 分页参数及数据
	 * @author xu_cc
	 * @date 2018-05-07 15:23:32
	 */
	public PageBean listShowCommentPage(PageParam pageParam, Map<String, Object> param) {
		return super.listPage(pageParam, param, "listShowCommentPage",
				"countShowComment");
	}
	
	/**
	 * 分页查询客户分享评论信息
	 * @param pageParam 分页对象
	 * @param shareComment 分页参数
	 * @return PageBean 分页参数及数据
	 * @author xu_cc
	 * @date 2018-05-07 15:23:32
	 */
	public PageBean listShareCommentPage(PageParam pageParam, Map<String, Object> param) {
		return super.listPage(pageParam, param);
	}

	/**
	 * 更新客户分享评论
	 * @param shareCommentEntity
	 * @return
	 * @author xu_cc
	 * @date 2018-05-07 15:23:32
	 */
	@Override
	public int updateShareComment(ShareCommentEntity shareCommentEntity) {
		return super.update(shareCommentEntity);
	}

	/**
	 * 删除客户分享评论
	 * @param shareCommentId
	 * @return
	 * @author xu_cc
	 * @date 2018-05-07 15:23:32
	 */
	public int deleteShareCommentById( Long id) {
		return super.deleteById(id);	
	}
	
	/**
	 * 评论回复数+1
	 * @param commentId
	 * @return
	 * @author xkl
	 * @date 2018年5月24日 下午2:38:23
	 */
	@Override
	public Integer doCommentReplyIncrBy(Long commentId) {
		return getSessionTemplate().update(getStatement("doCommentReplyIncrBy"), commentId);
	}

	/**
	 * 更新评论点赞数
	 * @param commentList
	 * @return
	 * @author xkl
	 * @date 2018年5月24日 下午2:38:25
	 */
	@Override
	public Integer updateShareCommentLikeQuantity(List<ShareCommentEntity> commentList) {
		return getSessionTemplate().update(getStatement("updateShareCommentLikeQuantity"), commentList);
	}
	
	/**
	 * 根据条件查询客户分享评论
	 * @param param
	 * @return
	 * @author xu_cc
	 * @date 2018-05-07 15:23:32
	 */
	@Override
	public List<ShareCommentEntity> listShareComment(Map<String, Object> param) {
		return super.listBy(param);
	}
	
}
